package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.converter.DateTimeFormatConvert;
import com.settlement.system.converter.SyncBillDetaillStatusConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 抖音资金流水明细
 * @author xiaochuan
 * @since 2023-08-25
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblDyCashFlowRecords extends BaseModel implements Serializable {


    /**
     * 店铺ID
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "店铺ID")
    @ApiModelProperty(value = "店铺ID")
    private String dyWebShopId;

    /**
     * 店铺编码
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "店铺编码")
    @ApiModelProperty(value = "店铺编码")
    private String shopNo;

    /**
     * NC店铺编码
     */
    private String ncShopNo;

    /**
     * NC店铺名称
     */
    private String ncShopName;

    /**
     * 动账金额(分)
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账金额")
    @ApiModelProperty(value = "动账金额")
    private BigDecimal accountAmount;

    /**
     * 动账摘要
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账摘要")
    @ApiModelProperty(value = "动账摘要")
    private String accountBillDesc;

    /**
     * 动账摘要 0：其他 1：达人带货佣金 2：达人佣金退款 3：订单结算 4：部分结算 5：运费单结算 6：服务费返还 7：平台补贴扣回 8：退款失败退票 9：结算重复扣款调账 10：保证金退款 11：提现 12：提现退票 13：极速退款分账 14：小额打款(原因:补差价) 15：小额打款(原因:其他) 16：小额打款(原因:商品补偿) 17：小额打款(原因:运费补偿) 18：小额打款退票 19：已退款 20：运费险扣减货款 21：支付BIC服务费 22：BIC服务费退票 23: 原路退
     */
    @ApiModelProperty(value = "动账摘要 0：其他 1：达人带货佣金 2：达人佣金退款 3：订单结算 4：部分结算 5：运费单结算 6：服务费返还 7：平台补贴扣回 8：退款失败退票 9：结算重复扣款调账 10：保证金退款 11：提现 12：提现退票 13：极速退款分账 14：小额打款(原因:补差价) 15：小额打款(原因:其他) 16：小额打款(原因:商品补偿) 17：小额打款(原因:运费补偿) 18：小额打款退票 19：已退款 20：运费险扣减货款 21：支付BIC服务费 22：BIC服务费退票 23: 原路退")
    private Integer accountBillDescTag;

    /**
     * 动账流水号(唯一)
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账流水号")
    @ApiModelProperty(value = "动账流水号(唯一)")
    private String accountTradeNo;

    /**
     * 动账账户 1: 微信 2:支付宝 3:合众支付 4:聚合支付
     */
    @ApiModelProperty(value = "动账账户 1: 微信 2:支付宝 3:合众支付 4:聚合支付")
    private Integer accountType;

    /**
     * 动账账户
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账账户")
    @ApiModelProperty(value = "动账账户")
    private String accountTypeDesc;

    /**
     * 实际DOU分期营销补贴
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "实际DOU分期营销补贴")
    @ApiModelProperty(value = "实际DOU分期营销补贴")
    private BigDecimal actualZrPayPromotion;

    /**
     * 实际抖音支付补贴
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "实际抖音支付补贴")
    @ApiModelProperty(value = "实际抖音支付补贴")
    private BigDecimal actualZtPayPromotion;

    /**
     * 【商家无需使用】售后编号非售后接口的售后单id；该字段为账单售后编号id；
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "账单售后编号id")
    @ApiModelProperty(value = "【商家无需使用】售后编号非售后接口的售后单id；该字段为账单售后编号id；")
    private String afterSaleServiceNo;

    /**
     * 实际达人补贴
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "实际达人补贴")
    @ApiModelProperty(value = "实际达人补贴")
    private BigDecimal authorCouponSubsidy;

    /**
     * 动账时间
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账时间",converter = DateTimeFormatConvert.class)
    @ApiModelProperty(value = "动账时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date billTime;

    /**
     * 计费类型 0:全部 1:鲁班广告 2:精选联盟 3:值点商城 4:小店自卖 5:橙子建站 6:POI 7:抖+ 8:穿山甲 9:服务市场 10:服务市场外包客服 11:学浪
     */
    @ApiModelProperty(value = "计费类型 0:全部 1:鲁班广告 2:精选联盟 3:值点商城 4:小店自卖 5:橙子建站 6:POI 7:抖+ 8:穿山甲 9:服务市场 10:服务市场外包客服 11:学浪")
    private Integer bizType;

    /**
     * 计费类型描述
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "计费类型")
    @ApiModelProperty(value = "计费类型描述")
    private String bizTypeDesc;

    /**
     * 下单时间
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "下单时间",converter = DateTimeFormatConvert.class)
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date businessOrderCreateTime;

    /**
     * 渠道分成
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "渠道分成")
    @ApiModelProperty(value = "渠道分成")
    private BigDecimal channelFee;

    /**
     * 直播间站外推广
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "直播间站外推广")
    @ApiModelProperty(value = "直播间站外推广")
    private BigDecimal channelPromotionFee;

    /**
     * 招商服务费
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "招商服务费")
    @ApiModelProperty(value = "招商服务费")
    private BigDecimal colonelServiceFee;

    /**
     * 佣金
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "佣金")
    @ApiModelProperty(value = "佣金")
    private BigDecimal commission;

    /**
     * 是否免佣, 枚举值为是/否或为空
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "是否免佣")
    @ApiModelProperty(value = "是否免佣, 枚举值为是/否或为空")
    private String freeCommissionFlag;

    /**
     * 动账方向 0:入账 1:出账
     */
    @ColumnWidth(22)
    @ApiModelProperty(value = "动账方向 0:入账 1:出账")
    private Integer fundFlow;

    /**
     * 动账方向描述 出账、入账
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账方向")
    @ApiModelProperty(value = "动账方向描述 出账、入账")
    private String fundFlowDesc;

    /**
     * 订单号
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "订单号")
    @ApiModelProperty(value = "订单号")
    private String orderId;

    /**
     * 订单类型 0：普通订单 1：定金(已退款) 2：定金(尾款已支付) 3：定金(尾款未支付) 4：尾款(尾款已支付) 5：尾款(已退款)
     */
    @ApiModelProperty(value = "订单类型 0：普通订单 1：定金(已退款) 2：定金(尾款已支付) 3：定金(尾款未支付) 4：尾款(尾款已支付) 5：尾款(已退款)")
    private Integer orderType;

    /**
     * 订单类型描述
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "订单类型")
    @ApiModelProperty(value = "订单类型描述")
    private String orderTypeDesc;

    /**
     * 其他分成金额
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "其他分成金额")
    @ApiModelProperty(value = "其他分成金额")
    private BigDecimal otherSharingAmount;

    /**
     * 订单实付应结，单位：分；   只包含用户实际支付的金额，不含各类补贴（如：平台补贴、达人补贴、支付补贴等）
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "订单实付应结")
    @ApiModelProperty(value = "订单实付应结，单位：分；   只包含用户实际支付的金额，不含各类补贴（如：平台补贴、达人补贴、支付补贴等）")
    private BigDecimal payAmount;

    /**
     * 平台服务费
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "平台服务费")
    @ApiModelProperty(value = "平台服务费")
    private BigDecimal platformServiceFee;

    /**
     * 运费
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "运费")
    @ApiModelProperty(value = "运费")
    private BigDecimal postAmount;

    /**
     * 商品ID
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "商品ID")
    @ApiModelProperty(value = "商品ID")
    private String productId;

    /**
     * 实际平台补贴
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "实际平台补贴")
    @ApiModelProperty(value = "实际平台补贴")
    private BigDecimal promotionAmount;

    /**
     * 订单退款
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "订单退款")
    @ApiModelProperty(value = "订单退款")
    private BigDecimal refundAmount;

    /**
     * 备注
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 店铺id
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "店铺id")
    @ApiModelProperty(value = "店铺id")
    private String shopId;

    /**
     * 店铺单号
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "店铺单号")
    @ApiModelProperty(value = "店铺单号")
    private String shopOrderId;

    /**
     * 动账场景
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "动账场景")
    @ApiModelProperty(value = "动账场景")
    private String transScene;

    /**
     * 动账场景 0:其他 1:消费者赔付 2:小额打款 3:判罚扣款 4:物流赔付 5:充值保证金 6:权益保险 7:欠票扣款-商家开票 8:公益捐款 9:上门取件运费 10:供应链QIC费用 11:抖音支付与商家联合补贴营销活动 12:抖音月付与商家联合补贴营销活动 13:抖音月付与商家联合贴息活动 14:放心借·贷款还款 15:人工调账 16:提前收款 17:充值千川广告费 18:营销费用-评价有礼 19:年框返点 20:抖店货款充值云仓服务账户 21:供应链平台代发费用 22:退款-结算后退款-退用户 23:退款-订单退款触发-退补贴 24:退款-价保补差退回 25:退款-退转付扣减商家货款 26: 退款-极速退二阶段商家资金回补 27:退款-商家赔付扣减商家货款 28:退款-极速退二次售后-退用户 29:上门取件平台分佣 30:货款结算入账 31:货款完结分账-执照注销场景 32:保证金垫付退款结算分账 33:福袋业务结算入账 34:退款-订单退款触发-分账 35:退款-订单退款触发-退分账 36:退款-价保补差 37:退款-退款失败资金退回 38:退款-赔付失败资金退回 39:上门取件结算入账 40:上门取件保司理赔金 41:上门取件平台激励金 42:上门取件平台改派补贴 43:佣金入账 44:提现 45:提现退票
     */
    @ApiModelProperty(value = "动账场景 0:其他 1:消费者赔付 2:小额打款 3:判罚扣款 4:物流赔付 5:充值保证金 6:权益保险 7:欠票扣款-商家开票 8:公益捐款 9:上门取件运费 10:供应链QIC费用 11:抖音支付与商家联合补贴营销活动 12:抖音月付与商家联合补贴营销活动 13:抖音月付与商家联合贴息活动 14:放心借·贷款还款 15:人工调账 16:提前收款 17:充值千川广告费 18:营销费用-评价有礼 19:年框返点 20:抖店货款充值云仓服务账户 21:供应链平台代发费用 22:退款-结算后退款-退用户 23:退款-订单退款触发-退补贴 24:退款-价保补差退回 25:退款-退转付扣减商家货款 26: 退款-极速退二阶段商家资金回补 27:退款-商家赔付扣减商家货款 28:退款-极速退二次售后-退用户 29:上门取件平台分佣 30:货款结算入账 31:货款完结分账-执照注销场景 32:保证金垫付退款结算分账 33:福袋业务结算入账 34:退款-订单退款触发-分账 35:退款-订单退款触发-退分账 36:退款-价保补差 37:退款-退款失败资金退回 38:退款-赔付失败资金退回 39:上门取件结算入账 40:上门取件保司理赔金 41:上门取件平台激励金 42:上门取件平台改派补贴 43:佣金入账 44:提现 45:提现退票")
    private Integer transSceneTag;

    /**
     * 免佣金额
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "免佣金额")
    @ApiModelProperty(value = "免佣金额")
    private BigDecimal realFreeCommissionAmount;

    /**
     * 生成统一账单状态 0:待生成 1:已生成
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "生成统一账单状态",converter = SyncBillDetaillStatusConvert.class)
    @ApiModelProperty(value = "生成统一账单状态 0:待生成 1:已生成")
    private String syncBillDetaillStatus;
}
